package com.eazy.lkv2.core.db;

import com.eazy.lkv2.core.web.utils.Base64;
import com.eazy.lkv2.core.web.utils.Bundle;

/**
 * 代码的编写离不开更多人的参与支持
 * 写这个类的目的
 * 	加密数据库 用户名和密码避免明文出现
 * 群里之前有个人问了这个问题，现在实现下
 * @date 2016-7-19 14:14:12 星期二
 * @author jzx
 */
public class EncryptPropertyPlaceholderConfigurer extends org.springframework.beans.factory.config.PropertyPlaceholderConfigurer {

	// db.properties
	private String[] encryptPropNames = {"db.username","db.password"};
	
	@Override
	protected String convertProperty(String propertyName, String propertyValue) {
		if(isEncryptProp(propertyName)) {
			return Bundle.convUTF8(Base64.decryptBASE64(propertyValue),"utf-8");
		} else {
			return propertyValue;
		}
	}

	private boolean isEncryptProp(String propertyName) {
		for(String encryptPropName : encryptPropNames) {
			if(encryptPropName.equals(propertyName)) {
				return true;
			}
		}
		return false;
	}
}
